Ana içeriğe geç
Sürüm: 1.484.0

Kullanım

Temel Örnek

import Trustchex from '@trustchex/react-native-sdk';

<Trustchex
baseUrl="https://your-api.com"
sessionId="session-123"
onCompleted={() => console.log('Tamamlandı')}
onError={(error) => console.error(error)}
/>

Özellikler

ÖzellikTipZorunluAçıklama
baseUrlstringAPI temel URL'si
sessionIdstringOturum tanımlayıcısı
brandingobjectRenkler ve logo
locale'en' | 'tr'Dil
onCompleted() => voidBaşarı geri çağırma
onError(error) => voidHata geri çağırma
onDocumentRead(result: DocumentReadResult) => voidBelge okunduğunda çağrılır (NFC veya OCR)

Belge Okuma Olayı

onDocumentRead geri çağırması, belge verisi mevcut olur olmaz tetiklenir — başarılı bir NFC çip okumasından veya başarılı bir kamera OCR taramasından hemen sonra. Kaynaktan bağımsız olarak birleşik bir DocumentReadResult nesnesi alır.

import Trustchex, { type DocumentReadResult } from '@trustchex/react-native-sdk';

<Trustchex
baseUrl="https://your-api.com"
sessionId="session-123"
onDocumentRead={(result: DocumentReadResult) => {
const { document } = result;

console.log(document.documentType); // "P" (pasaport) | "I" (kimlik kartı)
console.log(document.issuingCountry); // "DEU"
console.log(document.nationality); // "DEU"
console.log(document.documentNumber); // "C01X00T478"
console.log(document.personalNumber); // "8512310074" | null
console.log(document.lastName); // "MÜLLER"
console.log(document.firstName); // "JÜRGEN KARL"
console.log(document.sex); // "M" | "F" | "X" | "U"
console.log(document.dateOfBirth); // "1985-03-10" (ISO 8601)
console.log(document.dateOfExpiry); // "2030-11-05" (ISO 8601)
}}
onCompleted={() => console.log('Done')}
onError={(error) => console.error(error)}
/>

DocumentReadResult

interface DocumentReadResult {
document: {
documentType: string; // "P" (passport) | "I" (ID card)
issuingCountry: string; // 3-letter ICAO country code, e.g. "TUR"
nationality: string;
documentNumber: string;
personalNumber: string | null;
lastName: string; // Best available name, e.g. "MÜLLER"
firstName: string; // Best available name, e.g. "JÜRGEN"
sex: 'M' | 'F' | 'X' | 'U';
dateOfBirth: string | null; // ISO 8601, e.g. "1990-05-15"
dateOfExpiry: string | null; // ISO 8601, e.g. "2028-03-01"
};
name: {
rawLast: string; // MRZ ASCII surname
rawFirst: string; // MRZ ASCII given name
displayLast: string; // Best Unicode form, e.g. "SAYGI"
displayFirst: string; // Best Unicode form, e.g. "SELİM"
source: 'dg11' | 'reverse_table' | 'raw';
};
face?: {
data: string; // Base64-encoded image
mimeType: string; // e.g. "image/jpeg"
};
}

İsim Kaynakları

KaynakAçıklama
dg11NFC çipindeki DG11 dosyasından okunan tam basılı isim (UTF-8). En yüksek doğruluk.
reverse_tableICAO 9303 ters transliterasyon tablosu ile yeniden oluşturuldu (ör. OE→Ö, UE→Ü). Bilinen ülkeler için uygulanır.
rawDönüşüm yapılmadı — görüntülenen isim ham MRZ ASCII değeriyle aynı.

Markalaşma ile

<Trustchex
baseUrl="https://your-api.com"
sessionId="session-123"
branding={{
logoUrl: 'https://your-logo.png',
primaryColor: '#1E40AF',
secondaryColor: '#F8FAFC',
tertiaryColor: '#DC2626'
}}
locale="tr"
onCompleted={() => console.log('Tamamlandı')}
/>

Derin Bağlantılar (İsteğe Bağlı)

Derin bağlantı işlevselliği, bağımsız bir uygulama yayınlamak istiyorsanız isteğe bağlı bir özelliktir. SDK ile derin bağlantıları işlemek için uygulamanızda derin bağlantıları yapılandırmanız ve gelen URL'leri işlemek için gerekli hook'ları kurmanız gerekir.

1. Derin Bağlantı Şemalarını Yapılandırın

iOS - Info.plist dosyasına ekleyin:

<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>yourapp</string>
</array>
</dict>
</array>

Android - AndroidManifest.xml dosyasına ekleyin:

<activity android:name=".MainActivity">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="yourapp" />
</intent-filter>
</activity>

2. Derin Bağlantı İşlemeyi Kurun

Gelen URL'leri işlemek için handleDeepLink fonksiyonunu import edin ve kullanın:

import React from 'react';
import { AppState, Linking } from 'react-native';
import Trustchex, { handleDeepLink } from '@trustchex/react-native-sdk';

const App = () => {
const [baseUrl, setBaseUrl] = React.useState<string | undefined>();
const [sessionId, setSessionId] = React.useState<string>('');

React.useEffect(() => {
const handleInitialDeepLink = async () => {
const url = await Linking.getInitialURL();
if (url) {
const [bUrl, sId] = handleDeepLink({ url });
if (bUrl && sId) {
setBaseUrl(bUrl);
setSessionId(sId);
}
}
};

const handleIncomingLink = ({ url }: { url: string }) => {
const [bUrl, sId] = handleDeepLink({ url });
if (bUrl && sId) {
setBaseUrl(bUrl);
setSessionId(sId);
}
};

Linking.addEventListener('url', handleIncomingLink);
handleInitialDeepLink();

const subscription = AppState.addEventListener('change', (nextAppState) => {
handleInitialDeepLink();
});

return () => {
Linking.removeAllListeners('url');
subscription.remove();
};
}, []);

return (
<Trustchex
baseUrl={baseUrl}
sessionId={sessionId}
onCompleted={() => console.log('Tamamlandı')}
onError={(error) => console.error(error)}
/>
);
};

handleDeepLink fonksiyonu şu formattaki URL'leri ayrıştırır:

scheme://app-url/your-api.com/verification-session/session-123

Ve Trustchex bileşeni ile kullanabileceğiniz [baseUrl, sessionId] döndürür.

Oturumlar

REST API kullanarak oturumlar oluşturun.

Oturum Erişim Yöntemleri

SDK, kullanıcıların doğrulama oturumlarına erişmeleri için birden fazla yol sağlar:

1. Oturum Kodu Girişi (Önerilir)

Kullanıcılar hoş geldiniz ekranında gösterilen 8 karakterlik alfanümerik bir kodu manuel olarak girebilirler:

<Trustchex
baseUrl="https://your-api.com"
// sessionId prop'una gerek yok - kullanıcı kodu manuel olarak girer
onCompleted={() => console.log('Tamamlandı')}
/>

sessionId sağlanmadığında, SDK kullanıcıların şunları yapabileceği bir ekran görüntüler:

  • Oturum kodunu girin (örn. AB12CD34)
  • QR kodu tarayın

Avantajları:

  • Tüm iletişim kanallarında çalışır (e-posta, SMS)
  • Derin bağlantı kurulumu gerektirmez
  • Kullanıcıların yazması basittir

2. Derin Bağlantı (Doğrudan Erişim)

Kullanıcılar, uygulamayı doğrudan oturumla açan bir bağlantıya tıklarlar:

// Derin bağlantı formatı: yourapp://app-url/your-api.com/verification-session/session-123
<Trustchex
baseUrl="https://your-api.com"
sessionId="session-123" // Derin bağlantıdan
onCompleted={() => console.log('Tamamlandı')}
/>

3. QR Kod Tarama

Kullanıcılar oturum bilgilerini içeren bir QR kodunu tararlar. SDK, hoş geldiniz ekranından erişilebilen yerleşik bir QR tarayıcı içerir.

Oturum Kodları ile Oturum Oluşturma

REST API aracılığıyla bir oturum oluştururken, yanıtta bir sessionCode alırsınız:

const response = await fetch('https://your-api.com/api/v1/verification-sessions', {
method: 'POST',
headers: { 'x-api-key': 'API_ANAHTARINIZ' },
body: JSON.stringify({
workflowId: 'workflow-123',
})
});

const { sessionCode } = await response.json();
// sessionCode: "AB12CD34"

// Bu kodu kullanıcıya gösterin
console.log(`Doğrulama kodunuz: ${sessionCode}`);